class DebounceFilter
{
private:
    int filtered_value;  // 滤波后的有效值
    int last_sample;     // 上一次的原始采样值
    int debounce_count;  // 抖动计数器
    const int threshold; // 消抖阈值（连续检测次数）

public:
    /**​
     * 构造函数
     * @param initial_value 初始有效值
     * @param debounce_threshold 消抖判定阈值（建议3 - 10）
     */
    DebounceFilter(int initial_value, int debounce_threshold);

    /**​
     * 更新滤波值
     * @param new_sample 新采集的原始值
     * @return 滤波后的稳定值
     */
    int update(int new_sample);
};
